#ifndef COMPONENTS_TIMESEQUENCEPANEL_H
#define COMPONENTS_TIMESEQUENCEPANEL_H

#include <vector>

#include <wx/wx.h>

#include "painter.hpp"

using models::Process;
using models::TimePoint;

namespace components {
class TimeSequencePanel : public wxPanel {
public:
  TimeSequencePanel(wxWindow *parent, const std::vector<Process> &processes,
                    const std::vector<TimePoint> &time_points);

  ~TimeSequencePanel() {
    if (m_painter) {
      delete m_painter;
    }
  }

private:
  void OnPaint(wxPaintEvent &event);
  std::vector<TimePoint> m_time_points;
  std::vector<Process> m_processes;
  Painter *m_painter;
  wxStaticBitmap *m_imageCtrl;
};
} // namespace components
#endif // COMPONENTS_TIMESEQUENCEPANEL_H